home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
007
/
eemram11.arc
/
EEMRAM.DOC
< prev
next >
Wrap
Text File
|
1987-08-19
|
17KB
|
398 lines
EEMRAM 1.01
Purpose
-------
EEMRAM is a small utility that can expand your DOS memory from
640K to a maximum of 736K using Enhanced Expanded Memory (EEM).
To use EEMRAM, you must have a memory board that provides EEM,
such as the AST RAMpage. A companion program (DERAM) can be used
to restore the "normal" 640K if necessary.
| indicates information that is new or changed in recent
versions.
Use
---
Here is EEMRAM's syntax:
eemram [/#] [/S]
When run, EEMRAM will increase DOS-usable memory DOS from 640K
to a maximum of 736K. The exact amount depends on your hardware
configuration, particularly on what type of display adapter you
have installed. You may want to run EEMRAM via your AUTOEXEC
startup batch, ideally as the first external program run by the
batch:
echo off
cd c:\util
eemram
...
The optional /S parameter instructs EEMRAM to (S)ave certain
information in memory where it can be accessed by the DERAM
program (see below). DERAM will not work unless EEMRAM was run
with the /S option.
The optional /# parameter limits EEMRAM's use of EEMS memory to
some amount less than the maximum possible. See "Limiting
Memory Size".
We've included a small program that displays the total amount
of memory available to the system and the amount that's currently
free for DOS's use. To see the effects of EEMRAM, just run MS
(Memory Size) before and after running EEMRAM.
DERAM
-----
As explained below ("Memory Allocation"), EEMRAM works by
mapping EEMS memory to DOS addresses beginning at memory segment
A000. There is a potential conflict here: the Enhanced Graphics
Adapter (EGA) may also use memory beginning at A000. It is also
possible that you may have other hardware using this area of
memory. The result of such conflicts is unpredictable, but the
most likely is that extraneous data will appear in graphics
displays.
You may also find that you have only a few programs that can
really use the extra EEMRAM memory and that you prefer to leave
the EEMS memory free most of the time.
The DERAM program helps with these situations by reversing the
effects of EEMRAM: it restores the original 640K of DOS memory
and releases the EEMRAM-allocated EEMS memory back to the free
memory pool.
To use DERAM, you must have run EEMRAM with the /S option:
C> eemram /s
This saves certain information the DERAM needs. To restore the
original 640K and eliminate the memory conflict, just run DERAM:
C> deram
As an example of using EEMRAM and DERAM, suppose that you only
want to have the extra memory available for one program, your
word processor BESTWP. The following command sequence will do
the trick:
C> eemram /s
C> bestwp
C> deram
You can enter these commands manually or make a small batch file
or PCED synonym.
The opposite situation holds where you want to run with extra
memory most of the time, but release it before running the EGA
graphics program GREATGFX. The following commands will work,
assuming that you originally installed EEMRAM with /S:
C> deram
C> greatgfx
C> eemram /s
NOTE: when you use /S, EEMRAM places in memory a small amount
(four bytes) of information that DERAM needs. The information
is stored in the little used Interapplications Communication
Area (ICA). If EEMRAM cannot find four consecutive unused bytes
in this area, it cannot store the information and DERAM won't
work.
Limiting Memory Size: /# parameter
----------------------------------
The optional EEMRAM /# parameter can be used to explicitly
reduce the number of 16K pages of EEMS memory it assigns to DOS
(see "Memory Allocation Information" for more information about
memory use). "#" is a decimal digit from 1 to 6 that specifies
how many pages you want assigned.
EEMRAM will normally assign all contiguous pages available
from A000 to B400 (6 pages maximum, or 96K). However, there may
be cases in which you don't want all of this used, and that's
what /# does. An example of /# use:
C> eemram /2
The /2 means "use only two 16K pages of EEMS memory."
If you specify more pages than are available, EEMRAM will only
use the number available, in effect ignoring your parameter.
Here is a map showing the effects of all possible /#:
Page /1 /2 /3 /4 /5 /6
---- -- -- -- -- -- --
A000 XX XX XX XX XX XX
A400 XX XX XX XX XX
A800 XX XX XX XX
AC00 XX XX XX
B000 XX XX <---MDA memory begins
B400 XX
B800 <---CGA memory begins
-- -- -- -- -- --
KB added 16 32 48 64 80 96
Total KB 656 672 688 704 720 736
Memory Allocation Information
-----------------------------
When a typical EEMS memory board is installed, it "backfills"
DOS memory to 640K; that is, some of the memory on the EEMS
board is permanently assigned to DOS in such a way that the
system will appear to DOS to have 640K of main memory. This
640K occupies RAM addresses 00000 to 9FFFFF, or, in the more
traditional segment notation, memory segments 0000 to 9FFF.
Segments beginning at A000 (the next segment above 9FFF) are not
assigned to DOS by the EEMS manager.
However, 64K to 96K of addresses beginning at A000 are often
unused on PC's. On a machine equipped with a monochrome display
adapter (MDA), display memory begins at segment B000, leaving
64K open from A000-AFFF; on a machine equipped with a color
graphics adapter (CGA), display memory begins at segment B800,
leaving 96K open from A000-B7FF.
It is possible to force the EEMS manager to assign memory for
these addresses and to convince DOS that the EEMS memory so
assigned is usable by the system, resulting in as much as 736K
of DOS-usable memory. That is what EEMRAM does.
[Contrary to popular opinion, DOS is not limited to 640K;
it can use whatever memory is available, up to a limit of 1
megabyte. The limiting factor is your hardware. DOS can only
uses memory up to the lowest memory address used by any
component of your PC's hardware: adapter cards, ROM modules,
etc. Also, the DIP switches on many machines are limited to a
maximum of 640K switch-settable; to go beyond this, it's
necessary for software such as EEMRAM to override the switch
settings.]
EEMS "exclusion" switches
-------------------------
When EEMRAM is run, it asks the EEMS manager which pages (16K
blocks) of memory are available for mapping. EEMRAM will only
use contiguous pages beginning at A000 and ending at B800, a
maximum of 6 pages (96K): A000, A400, A800, AC00, B000, and
B400. If an MDA is installed, the EEMS manager will inform
EEMRAM that pages B000 and B400 are not available, reulting in 4
usable pages (64K).
Many EEMS managers have an optional install-time switch that
explcitly tells them NOT to allow mapping memory to specific
pages. For example, AST's REMM.SYS has an X parameter that
eXcludes pages:
device=remm.sys /X=A800-AFFF
In this example, REMM would not map memory to pages A800 and
AC00, so EEMRAM would be able to use only A000 and A400 (32K
total). If you find that EEMRAM is using less EEMS memory than
you'd expect (or if you see the message "No pages available at
A000"), you might look to this as a possible cause.
| EMSINFO
| -------
| The separate program EMSINFO is a quick test that should tell
| you if your system can use EEMRAM. Run it by just typing
| "EMSINFO" at the DOS prompt.
|
| EMSINFO will verify that the EMS manager software is loaded and
| operating correctly. It will also test to ensure that the EMS
| memory is "enhanced." If you see the message:
|
| EMS is probably not enhanced
|
| then EEMRAM will not work. The message indicates that the EMS
| manager software does not support a critical "enhanced" function
| that EEMRAM needs (function 41, AH=68H).
|
| If you see the message:
|
| EMM does NOT support some newer functions, possibly outdated
|
| then EEMRAM will work, but you might want to check with your EMS
| vendor about getting a newer version of the EMS manager. For
| example, versions of AST's REMM.SYS earlier than 3.0 will yield
| this message.
|
| Finally, EMSINFO displays a list of all memory segments to which
| EMS memory can be mapped. In order for EEMRAM to run, segment
| A000 must be in the list.
EEMRAM error messages
---------------------
Expected 640K of DOS memory
EEMRAM expects to find 640K of DOS RAM in the system; this
is the normal case if you have an EEMS board installed.
You'll see this message if you try to run EEMRAM in
"session" mode (format 1) twice in one session.
Unable to resize memory
EEMRAM can't modify DOS's memory allocation blocks, so
nothing has been done. Always run EEMRAM directly at the
DOS prompt or via AUTOEXEC; don't run it as a "child" of
some other program.
Installed EMS memory is not enhanced
In this world there are two kinds of expanded memory
specificatons: EMS and Enhanced EMS (EEMS). Standard EMS
hardware cannot do what EEMRAM has to do to map the expanded
memory, so it cannot be used. If you see this message, you
do not have EEMS memory and you can't use EEMRAM.
Error accessing EEMS manager
Generic message indicating that there's a problem with the
EEMS manager software: it's corrupted, you don't have
expanded memory, etc.
No pages available at A000
A000 (hex) is the address where memory above 640K would
start. The EEMS manager has told EEMRAM that there is no
"page frame" available at A000, so EEMRAM can't assign any
EEMS memory there. The most likely cause is that other
hardware (EGA?) is already using this area of memory.
Another possibility is that you have set an exclusion switch
for page A000 when loading your EEMS manager.
Warning: unable to save /S information for DERAM
There is insufficient memory unused in the area that
EEMRAM/DERAM use to pass needed information back and forth.
This is a warning message: EEMRAM itself has run successfully,
but DERAM won't work.
Valid pages are 1-6
The only legal values for the /# parameter are 1 through 6.
No EMS memory available
All of your expanded memory is already in use.
DERAM error messages
--------------------
System already set to 640K
DERAM has found that the system already shows 640K of DOS
memory, so it hasn't done anything.
EEMRAM not run with /S option, unable to resize memory
In order to use DERAM, you must run EEMRAM with the /S
switch. If you did run EEMRAM with /S and you see this
message, some other program is using the same area of memory
that EEMRAM/DERAM use to pass information back and forth.
You will not be able to use DERAM in this case (fortunately,
it's unlikely).
Error accessing EEMS manager
Generic message indicating that there's a problem with the
EEMS manager software: it's corrupted, you don't have
expanded memory, etc.
Unable to resize memory
DERAM can't modify DOS's memory allocation blocks, so
nothing has been done. Always run DERAM directly at the
DOS prompt or via AUTOEXEC; don't run it as a "child" of
some other program.
Notes
-----
1. We can't promise that EEMRAM will work with any specific
hardware configuration. If your hardware conflicts with what
EEMRAM does (EEMRAM won't run properly, system locks up, etc.),
there's nothing we can do about it.
2. EEMRAM is not a TSR (i.e., it is not resident). It runs and
terminates, restoring the full amount of memory to the system.
Because EEMRAM is not a TSR, don't try to use MARK/RELEASE,
REFEREE, POPDROP, or similar TSR managers to "remove" EEMRAM.
EEMRAM cannot be removed by these managers.
3. EEMRAM and DERAM both return an errorlevel of 255 if they
encounter any errors.
4. If EEMRAM needs more EEMS memory than is available, it will
use all that is available. If no EEMS memory at all is
available, it is an error.
5. Remember that EEMRAM requires ENHANCED expanded memory. This
is EMS memory that conforms to the Ashton-Tate/Quadram/AST
Enhanced Expanded Memory Specification (AQA EEMS). EEMRAM will
not work with "standard" (Lotus-Intel-Microsoft or LIM) expanded
memory such as that provided by the Intel AboveBoard.
Versions
--------
| 1.01 08/20/87
| Changed test for enhanced memory, may be a little more
| tolerant of older versions of REMM.SYS et al.
Copyright/License/Warranty
--------------------------
This document and the program files EEMRAM.COM and DERAM.COM
("the software") are copyrighted by the author. The copyright
owner hereby licenses you to: use the software; make as many
copies of the program and documentation as you wish; give such
copies to anyone; and distribute the software and documentation
via electronic means. There is no charge for any of the above.
However, you are specifically prohibited from charging, or
requesting donations, for any such copies, however made; and
from distributing the software and/or documentation with
commercial products without prior permission. An exception is
granted to not-for-profit user's groups, which are authorized to
charge a small fee (not to exceed $7) for materials, handling,
postage, and general overhead. NO FOR-PROFIT ORGANIZATION IS
AUTHORIZED TO CHARGE ANY AMOUNT FOR DISTRIBUTION OF COPIES OF
THE SOFTWARE OR DOCUMENTATION, OR TO INCLUDE COPIES OF THE
SOFTWARE OR DOCUMENTATION WITH SALES OF THEIR OWN PRODUCTS.
THIS INCLUDES A SPECIFIC PROHIBITION AGAINST FOR-PROFIT
ORGANIZATIONS DISTRIBUTING THE SOFTWARE, EITHER ALONE OR WITH
OTHER SOFTWARE, AND CHARGING A "HANDLING" OR "MATERIALS" FEE OR
ANY OTHER SUCH FEE FOR THE DISTRIBUTION. NO FOR-PROFIT
ORGANIZATION IS AUTHORIZED TO INCLUDE THE SOFTWARE ON ANY MEDIA
FOR WHICH MONEY IS CHARGED. PERIOD.
No copy of the software may be distributed or given away without
this document; and this notice must not be removed.
There is no warranty of any kind, and the copyright owner is not
liable for damages of any kind. By using this free software,
you agree to this.
The software and documentation are:
Copyright (C) 1987 by
Christopher J. Dunford
The Cove Software Group
Post Office Box 1072
Columbia, Maryland 21044
(301) 992-9371
Comments to Chris Dunford [CIS 76703,2002].